package com.orange.ui.launcher.modifier;

import com.orange.entity.IEntity;
import com.orange.entity.modifier.IEntityModifier;
import com.orange.entity.scene.Scene;
import com.orange.entity.scene.group.SceneGroup;
import com.orange.util.modifier.IModifier;

public class EnterEntityModifierListener extends BaseTransitionModifierListener {

	/**
	 * 
	 * @param pSceneGroup 不能为空
	 * @param pScene 不能为空
	 * @param pEntityModifier 为空时，直接完成modifier
	 */
	public EnterEntityModifierListener(SceneGroup pSceneGroup, Scene pScene, IEntityModifier pEntityModifier) {
		super(pSceneGroup, pScene, pEntityModifier);
		// TODO Auto-generated constructor stub
		pScene.setVisible(true);
		if (pEntityModifier != null) {
			pScene.clearEntityModifiers();
			pEntityModifier.addModifierListener(this);
			pScene.registerEntityModifier(pEntityModifier);
		}else {
			this.onModifierFinished(pEntityModifier, pScene);
		}
	}

	@Override
	public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
		// TODO Auto-generated method stub
		super.onModifierStarted(pModifier, pItem);
	}

	@Override
	public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
		// TODO Auto-generated method stub
		super.onModifierFinished(pModifier, pItem);
		if (pModifier != null) {
			pModifier.removeModifierListener(this);
		}
	}

}
